/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package suministros.ejb30.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author Luis_Angel
 */
@Entity
@Table(name = "Detalle_Solicitud_Cotizacion")
@NamedQueries({
    @NamedQuery(name = "DetalleSolicitudCotizacion.findAll", query = "SELECT d FROM DetalleSolicitudCotizacion d"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findByNroSolicitudCotizacion", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.detalleSolicitudCotizacionPK.nroSolicitudCotizacion = :nroSolicitudCotizacion"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findByCorrelativo", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.detalleSolicitudCotizacionPK.correlativo = :correlativo"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findByCodProveedor", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.detalleSolicitudCotizacionPK.codProveedor = :codProveedor"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findByCodPedido", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.codPedido = :codPedido"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findByIDSuministro", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.iDSuministro = :iDSuministro"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findByCantidad", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.cantidad = :cantidad"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findByPrecioUnitario", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.precioUnitario = :precioUnitario"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findByCambioMoneda", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.cambioMoneda = :cambioMoneda"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findByObservacion", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.observacion = :observacion"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findByValidezOferta", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.validezOferta = :validezOferta"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findByTiempoEntrega", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.tiempoEntrega = :tiempoEntrega"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findByTiempoGarantia", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.tiempoGarantia = :tiempoGarantia"),
    @NamedQuery(name = "DetalleSolicitudCotizacion.findBySubTotal", query = "SELECT d FROM DetalleSolicitudCotizacion d WHERE d.subTotal = :subTotal")})
public class DetalleSolicitudCotizacion implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected DetalleSolicitudCotizacionPK detalleSolicitudCotizacionPK;
    @Column(name = "Cod_Pedido")
    private String codPedido;
    @Column(name = "ID_Suministro")
    private String iDSuministro;
    @Column(name = "cantidad")
    private BigDecimal cantidad;
    @Column(name = "precio_unitario")
    private BigDecimal precioUnitario;
    @Column(name = "cambio_moneda")
    private BigDecimal cambioMoneda;
    @Column(name = "Observacion")
    private String observacion;
    @Column(name = "validez_oferta")
    private String validezOferta;
    @Column(name = "tiempo_entrega")
    private String tiempoEntrega;
    @Column(name = "tiempo_garantia")
    private String tiempoGarantia;
    @Column(name = "sub_total")
    private BigDecimal subTotal;
    @JoinColumn(name = "forma_pago", referencedColumnName = "id_tabla_tipo")
    @ManyToOne
    private Tipo formaPago;
    @JoinColumn(name = "plantilla_impuesto", referencedColumnName = "id_tabla_tipo")
    @ManyToOne
    private Tipo plantillaImpuesto;
    @JoinColumn(name = "tipo_moneda", referencedColumnName = "id_tabla_tipo")
    @ManyToOne
    private Tipo tipoMoneda;

    public DetalleSolicitudCotizacion() {
    }

    public DetalleSolicitudCotizacion(DetalleSolicitudCotizacionPK detalleSolicitudCotizacionPK) {
        this.detalleSolicitudCotizacionPK = detalleSolicitudCotizacionPK;
    }

    public DetalleSolicitudCotizacion(String nroSolicitudCotizacion, int correlativo, String codProveedor) {
        this.detalleSolicitudCotizacionPK = new DetalleSolicitudCotizacionPK(nroSolicitudCotizacion, correlativo, codProveedor);
    }

    public DetalleSolicitudCotizacionPK getDetalleSolicitudCotizacionPK() {
        return detalleSolicitudCotizacionPK;
    }

    public void setDetalleSolicitudCotizacionPK(DetalleSolicitudCotizacionPK detalleSolicitudCotizacionPK) {
        this.detalleSolicitudCotizacionPK = detalleSolicitudCotizacionPK;
    }

    public String getCodPedido() {
        return codPedido;
    }

    public void setCodPedido(String codPedido) {
        this.codPedido = codPedido;
    }

    public String getIDSuministro() {
        return iDSuministro;
    }

    public void setIDSuministro(String iDSuministro) {
        this.iDSuministro = iDSuministro;
    }

    public BigDecimal getCantidad() {
        return cantidad;
    }

    public void setCantidad(BigDecimal cantidad) {
        this.cantidad = cantidad;
    }

    public BigDecimal getPrecioUnitario() {
        return precioUnitario;
    }

    public void setPrecioUnitario(BigDecimal precioUnitario) {
        this.precioUnitario = precioUnitario;
    }

    public BigDecimal getCambioMoneda() {
        return cambioMoneda;
    }

    public void setCambioMoneda(BigDecimal cambioMoneda) {
        this.cambioMoneda = cambioMoneda;
    }

    public String getObservacion() {
        return observacion;
    }

    public void setObservacion(String observacion) {
        this.observacion = observacion;
    }

    public String getValidezOferta() {
        return validezOferta;
    }

    public void setValidezOferta(String validezOferta) {
        this.validezOferta = validezOferta;
    }

    public String getTiempoEntrega() {
        return tiempoEntrega;
    }

    public void setTiempoEntrega(String tiempoEntrega) {
        this.tiempoEntrega = tiempoEntrega;
    }

    public String getTiempoGarantia() {
        return tiempoGarantia;
    }

    public void setTiempoGarantia(String tiempoGarantia) {
        this.tiempoGarantia = tiempoGarantia;
    }

    public BigDecimal getSubTotal() {
        return subTotal;
    }

    public void setSubTotal(BigDecimal subTotal) {
        this.subTotal = subTotal;
    }

    public Tipo getFormaPago() {
        return formaPago;
    }

    public void setFormaPago(Tipo formaPago) {
        this.formaPago = formaPago;
    }

    public Tipo getPlantillaImpuesto() {
        return plantillaImpuesto;
    }

    public void setPlantillaImpuesto(Tipo plantillaImpuesto) {
        this.plantillaImpuesto = plantillaImpuesto;
    }

    public Tipo getTipoMoneda() {
        return tipoMoneda;
    }

    public void setTipoMoneda(Tipo tipoMoneda) {
        this.tipoMoneda = tipoMoneda;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (detalleSolicitudCotizacionPK != null ? detalleSolicitudCotizacionPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {

        if (!(object instanceof DetalleSolicitudCotizacion)) {
            return false;
        }
        DetalleSolicitudCotizacion other = (DetalleSolicitudCotizacion) object;
        if ((this.detalleSolicitudCotizacionPK == null && other.detalleSolicitudCotizacionPK != null) || (this.detalleSolicitudCotizacionPK != null && !this.detalleSolicitudCotizacionPK.equals(other.detalleSolicitudCotizacionPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.DetalleSolicitudCotizacion[detalleSolicitudCotizacionPK=" + detalleSolicitudCotizacionPK + "]";
    }

}
